FIG. 4 illustrates coupling units employed in a data distribution apparatus as proposed in Japanese Patent Application No. 185561/90. Coupling unit 1 has two data input lines 2, 3, two data output lines 4, 5, a switch 6 for switching the data connecting patterns in the coupling unit, a group 7 of counters corresponding to each kind of data or work unit, and a control unit 8 for controlling the group of counters to switch the data connecting patterns in accordance with the contents of counter group 7. A first pattern, in which input lines 2, 3 are connected to output lines 4, respectively (a "parallel pattern"), and a second pattern in which input lines 2, 3 are connected to output lines 5, 4, respectively (a "cross pattern") are shown.
FIG. 5 illustrates two data connection patterns that are realized by switch 6 in coupling unit 1. In FIG. 5, the upper pattern is the parallel pattern and the lower pattern is the cross pattern. FIG. 6 illustrates the general construction of a conventional data distribution apparatus 9, which distributes data from a first memory group 10 to a second memory group 11.
In this system, coupling units 1 are arranged in a 4.times.3 matrix. Because first memory group 8 has eight memories, four units, each having two input lines, are provided in each vertical row and log.sub.2 8=3 rows in each horizontal row. Generally, in order to distribute data equally from a first group of N memories to a second group of N memories, it is necessary to form a data distributing apparatus having a group of coupling units which are arranged in a matrix of (N/2).times.log.sub.2 N rows. It should be noted however that there are various other methods of arranging a network which have a plurality of coupling units, and that the technique according to the present invention may be similarly effectively applied to these methods. The details of a coupling unit arrangement such as that shown in FIG. 6 and other coupling unit arrangements are explained in the report of the Electronic Communication Society Proceedings, Vol. J86-D, No. 6, p. 1272.
The first memory group stores at a minimum the data or work units to be processed. The second memory group is used as a temporary storage area for processing the data or the work units stored in the first memory group. A plurality of coupling units 1 equally distribute in second memory group 11 The data or work units stored in first memory group 10.
For this description, it is assumed that the object of distribution is data only, and that data are transferred from the first group 10 of N memories to the second group 11 of N memories after being classified into K different kinds of data. More specifically, each of the data belongs to any one of a number of kinds 0 to K-1. As is known, if the total number Nx of data for the X-th (X=0, . . . , k-1) kind are transferred from the first group of memories to the second group of memories, Nx/N number of data for each memory are transferred to second group of memories. Thus, each Nx/N number of data are transferred to second memory group and the data for all kinds of the X-th (X=0, . . . , K-1) data are distributed to the second memory whereby data distribution will be completed.
As The data distribution operation is started, data are successively sent from first group 10 to either of data input lines 2, 3 or to the coupling units in the first row, which are connected with the respective memories in the first group. Each coupling unit 1 in the first row sets either one of the two connection patterns for switch 6 (FIG. 5), according to an instruction from control circuit 8, to move the input data in accordance with switch 6 and to transfer the data to coupling units in the second row which is connected to the coupling unit 1, through either of data output lines 4 or 5. This operation is then repeated. The respective coupling units 1 in the second row and those in The subsequent rows also repeat a similar operation. Data that are output through either of data output lines 4 or 5 of each coupling unit 1 belonging to the final row are stored separately in the respective corresponding memories in the second memory group while being arranged according to kind.
Control circuit 8 determines the connection patterns for switch 6 in the following manner. Prior to data distribution, the counters for the respective coupling unit 1 are all initialized to zero. The counters are controlled so that when data belonging to an X-th (X=0, . . . , K-1) kind are output from data output line 4, the X-th counter in the counter group is increased by "1". Also, if similar data are output from data output line 5, counter group 7 is controlled by control circuit 8 so that "1" is subtracted from the X-th counter in counter group 7. More specifically, if the count of the X-th counter in counter group 7 is positive at a certain point in time, it means that the majority of data of the X-th kind output from coupling unit 1 up to that time was delivered through data output line 4. Similarly, if the count of the counter in counter group 7 is "0", it means that only half of the number of the data of the X-th kind output from this coupling unit 1 up to that time were delivered through data output line 4, and the remaining half of the data were delivered through the data output line 5. As a result, data belonging to the X-th kind are equally distributed and output with respect to coupling unit 1. If the count of a counter it means that the majority of the data was delivered through data output line 5. In the example shown in FIG. 4, the counts of the counters are "1", "5", "0", and "-2", respectively. The "1" indicates that the number of data of the 0-th kind delivered by data output line 4 is greater than the data delivered by data output line 5 by one; "5" indicates that the number of data of the first kind delivered by data output line 4 is greater than the data delivered by data output line 5 by five; "0" indicates that the number of data of the second kind delivered by data output line 4 is equal to the data delivered by data output line 4; and "-2" indicates that the number of data of the third kind delivered by data output line 5 is greater than the data delivered by data output line 4 by two.
Thus, counter group 7 can be used to control the condition of local distribution of the data delivered through two output lines 4 and 5 of coupling unit 1 for each kind of data. To realize equal distribution of data for each kind of each of the output lines in the coupling unit, the counts of all the counters in group 7 are "0" when data distribution is completed.
Control circuit 8 of the respective coupling unit seeks the difference in the counter values corresponding to the kind of incoming data each time data are transmitted to data input line 2, 3. If the counter value is positive or zero, the control unit 8 connects data input lines 2 or 3 to data output lines 5, 4, respectively. If the counter value is negative, the control circuit connects data input lines 2, 3 no data output lines 4, 5, respectively, thus determining the connection patterns for switch 6. The data which have been sent to the data input lines are delivered to the data output lines in accordance with the thus determined connection pattern for switch 6, and further delivered to the group of coupling units connected to these data output lines.
For example, it is assumed that data which belong to the 0-th kind are input through data input line 2 and data which belong to the first kind are inputted through data input line 3, and that the counts of the counters corresponding to these kinds are "1" and "5" respectively. This means that the number of data of the 0-th kind input to the coupling unit and output by data output line 4 up to that time is greater than that of data output by data output line 5 by one, and similarly, the number of data of the first kind output by data output line 5 by five. In this case, since data distribution is deviated to data of the first kind rather than data of 0-th kind, it is advantageous if data input line 2 is connected to data output line 4 and data input line 3 is connected to data output line 5 to reduce such deviation of distribution of data of the first kind. According to the above described method, the difference between the counts of the two counters is negative since 1-5=-4, and the connection pattern for this value is selected for switch 6.
According to the data distribution apparatus as described above the number of data or work units may be equally distributed. Since the processing load of the data or the work units varies depending on their contents, however, the processing loads will not be equal, if data processing is executed by the second group of memories. For example, even if data are distributed equally from the first group of memories to the second group of memories, when the distributed data or work units are processed by the second group, the processing time is determined by completion of processing by the memory in the second memory group which is the most heavily loaded and takes the longest processing time, thus resulting in extended processing time. It was also a problem that many of the memories in the second memory group caused the working efficiency to be lowered. Under these circumstances, if a large number of data or work units are to be processed, the processing efficiency is lowered.